package cl.solidit.geomanagement.persistance.util;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

/*
 * SELECT * FROM propiedad WHERE 
 ST_Within(georef, ST_GeometryFromText (
 'POLYGON((-71.87089872906495 -33.498944210372244,-71.87089872906495 -33.090301435552206,-70.39873076031495 -33.090301435552206,-70.39873076031495 -33.498944210372244,-71.87089872906495 -33.498944210372244))'
 , 4326));
 */
public class FiltroPropiedades {

	static public class Point {
		private Double x;
		private Double y;

		public Double getX() {
			return x;
		}

		public void setX(Double x) {
			this.x = x;
		}

		public Double getY() {
			return y;
		}

		public void setY(Double y) {
			this.y = y;
		}

	}

	private Boolean house = true;
	private Boolean app = true;
	private Boolean agr = true;
	private Boolean bod = true;
	private Boolean com = true;
	private Boolean est = true;
	private Boolean ofi = true;
	private Boolean sit = true;
	private Boolean min = true;

	public Boolean getBod() {
		return bod;
	}

	public void setBod(Boolean bod) {
		this.bod = bod;
	}

	public Boolean getCom() {
		return com;
	}

	public void setCom(Boolean com) {
		this.com = com;
	}

	public Boolean getEst() {
		return est;
	}

	public void setEst(Boolean est) {
		this.est = est;
	}

	public Boolean getOfi() {
		return ofi;
	}

	public void setOfi(Boolean ofi) {
		this.ofi = ofi;
	}

	public Boolean getSit() {
		return sit;
	}

	public void setSit(Boolean sit) {
		this.sit = sit;
	}

	private Boolean furnitured = true;
	private Boolean notFurnitured = true;
	private Boolean avalible = true;
	private Boolean notAvalible = false;
	private Boolean reserved = false;
	private Boolean low = true;
	private Boolean mid = true;
	private Boolean hi = true;
	private Boolean offer = true;
	private Boolean notOffer = true;
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date from;
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date to;
	private String rut;
	private Long numero;
	private String boundingBox;
	private Point sw = new Point();
	private Point ne = new Point();
	private Boolean doGeoFilter = true;
	private Long comuna;

	public Long getNumero() {
		return numero;
	}

	public void setNumero(Long numero) {
		this.numero = numero;
	}

	public Date getFrom() {
		return from;
	}

	public void setFrom(Date from) {
		this.from = from;
	}

	public Date getTo() {
		return to;
	}

	public void setTo(Date to) {
		this.to = to;
	}

	public String getRut() {
		return rut;
	}

	public void setRut(String rut) {
		this.rut = rut;
	}

	public String getBoundingBox() {
		return boundingBox;
	}

	public void setBoundingBox(String boundingBox) {
		this.boundingBox = boundingBox;
	}

	public Point getSw() {
		return sw;
	}

	public void setSw(Point sw) {
		this.sw = sw;
	}

	public Point getNe() {
		return ne;
	}

	public void setNe(Point ne) {
		this.ne = ne;
	}

	public Boolean getHouse() {
		return house;
	}

	public void setHouse(Boolean house) {
		this.house = house;
	}

	public Boolean getApp() {
		return app;
	}

	public void setApp(Boolean app) {
		this.app = app;
	}

	public Boolean getAgr() {
		return agr;
	}

	public void setAgr(Boolean agr) {
		this.agr = agr;
	}

	public Boolean getFurnitured() {
		return furnitured;
	}

	public void setFurnitured(Boolean furnitured) {
		this.furnitured = furnitured;
	}

	public Boolean getNotFurnitured() {
		return notFurnitured;
	}

	public void setNotFurnitured(Boolean notFurnitured) {
		this.notFurnitured = notFurnitured;
	}

	public Boolean getAvalible() {
		return avalible;
	}

	public void setAvalible(Boolean avalible) {
		this.avalible = avalible;
	}

	public Boolean getNotAvalible() {
		return notAvalible;
	}

	public void setNotAvalible(Boolean notAvalible) {
		this.notAvalible = notAvalible;
	}

	public Boolean getLow() {
		return low;
	}

	public void setLow(Boolean low) {
		this.low = low;
	}

	public Boolean getMid() {
		return mid;
	}

	public void setMid(Boolean mid) {
		this.mid = mid;
	}

	public Boolean getHi() {
		return hi;
	}

	public void setHi(Boolean hi) {
		this.hi = hi;
	}

	public Boolean getDoGeoFilter() {
		return doGeoFilter;
	}

	public void setDoGeoFilter(Boolean doGeoFilter) {
		this.doGeoFilter = doGeoFilter;
	}

	public Boolean getReserved() {
		return reserved;
	}

	public void setReserved(Boolean reserved) {
		this.reserved = reserved;
	}

	public Boolean getMin() {
		return min;
	}

	public void setMin(Boolean min) {
		this.min = min;
	}

	public Boolean getOffer() {
		return offer;
	}

	public void setOffer(Boolean offer) {
		this.offer = offer;
	}

	public Boolean getNotOffer() {
		return notOffer;
	}

	public void setNotOffer(Boolean notOffer) {
		this.notOffer = notOffer;
	}

	public Long getComuna() {
		return comuna;
	}

	public void setComuna(Long comuna) {
		this.comuna = comuna;
	}
	

}
